#!/bin/bash

echo "🚀 Redis集成测试启动脚本"
echo "================================"
echo ""

# 检查Node.js是否安装
if ! command -v node &> /dev/null; then
    echo "❌ 错误: Node.js未安装"
    exit 1
fi

echo "✅ Node.js版本: $(node --version)"

# 检查npm是否安装
if ! command -v npm &> /dev/null; then
    echo "❌ 错误: npm未安装"
    exit 1
fi

echo "✅ npm版本: $(npm --version)"
echo ""

# 检查依赖是否安装
if [ ! -d "node_modules" ]; then
    echo "📦 安装项目依赖..."
    npm install
    if [ $? -ne 0 ]; then
        echo "❌ 依赖安装失败"
        exit 1
    fi
    echo "✅ 依赖安装完成"
else
    echo "✅ 项目依赖已安装"
fi

echo ""

# 检查Redis配置文件
if [ ! -f "redis.config.js" ]; then
    echo "❌ 错误: Redis配置文件不存在"
    exit 1
fi

echo "✅ Redis配置文件存在"

# 检查Redis服务文件
if [ ! -f "src/services/redis.service.ts" ]; then
    echo "❌ 错误: Redis服务文件不存在"
    exit 1
fi

echo "✅ Redis服务文件存在"

# 检查Redis模块文件
if [ ! -f "src/modules/redis.module.ts" ]; then
    echo "❌ 错误: Redis模块文件不存在"
    exit 1
fi

echo "✅ Redis模块文件存在"

# 检查Redis测试控制器
if [ ! -f "src/controllers/redis-test.controller.ts" ]; then
    echo "❌ 错误: Redis测试控制器不存在"
    exit 1
fi

echo "✅ Redis测试控制器存在"

echo ""
echo "🔧 开始测试Redis连接..."

# 运行Redis连接测试
echo "📡 测试1: 直接Redis连接测试"
node test-redis-connection.js

echo ""
echo "📡 测试2: 完整Redis功能测试"
node test-redis.js

echo ""
echo "🎯 下一步: 启动NestJS应用进行HTTP API测试"
echo "   运行: npm run start:dev"
echo "   然后访问: http://localhost:3000/redis-test/ping"
echo ""

# 询问是否启动应用
read -p "是否现在启动NestJS应用进行测试? (y/n): " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
    echo "🚀 启动NestJS应用..."
    npm run start:dev
else
    echo "💡 稍后可以手动运行: npm run start:dev"
fi 